#ifndef BASEMODEL_OTA_INFO_H
#define BASEMODEL_OTA_INFO_H

#include "common.h"

// 固件信息
typedef struct {
    url_t url;              // 固件下载URL（可能为空字符串）
    version_t version;      // 固件版本号，如"1.7.2"
} firmware_t;

// MQTT连接配置
typedef struct {
    string_t client_id;         // MQTT客户端ID，格式如"GID_test@@@mac_addr@@@uuid"
    endpoint_t endpoint;        // MQTT服务器地址，如"mqtt.xiaozhi.me"
    string_t password;          // MQTT连接密码（Base64编码）
    string_t publish_topic;     // 发布主题，如"device-server"
    string_t subscribe_topic;   // 订阅主题，可能为"null"
    string_t username;          // MQTT用户名（JSON编码）
} mqtt_t;

// 服务器时间信息
typedef struct {
    int64_t timestamp;          // 服务器时间戳（毫秒）
    int32_t timezone_offset;    // 时区偏移量（分钟），如480表示UTC+8
} server_time_t;

// WebSocket连接配置
typedef struct {
    token_t token;      // WebSocket认证令牌
    url_t url;          // WebSocket连接URL
} websocket_t;

// OTA更新配置信息
typedef struct {
    firmware_t firmware;        // 固件信息
    mqtt_t mqtt;               // MQTT连接配置
    server_time_t server_time; // 服务器时间
    websocket_t websocket;     // WebSocket连接配置
} ota_info_t;

#endif // BASEMODEL_OTA_INFO_H
